/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package dados;

import java.util.GregorianCalendar;



public class Medico {

    private String nome;
    private String bi;
    private int cod_especialidade;
    private String cedula;
    private String morada;
    private String localidade;
    private String cod_postal;
    private GregorianCalendar dataNasc;
    private String contacto;
    private String password;
    

    public Medico(){
        nome = "";
        bi = "";
        cod_especialidade = 0;
        cedula = "";
        morada = "";
        localidade = "";
        cod_postal = "";
        dataNasc = new GregorianCalendar();
        contacto = "";
        password = "";
    }
    
    public Medico(String nome, String bi, String cedula, int cod_especialidade, 
        String morada, String localidade, String cod_postal,GregorianCalendar dataNasc,String contacto,String password) {
        this.nome = nome;
        this.bi = bi;
        this.cedula = cedula;
        this.cod_especialidade = cod_especialidade;
        this.morada = morada;
        this.localidade = localidade;
        this.cod_postal = cod_postal;
        this.dataNasc = dataNasc;
        this.contacto = contacto;             
        Cripto c = new Cripto(password);
        this.password = c.encrypt();
         
    }
    
    public Medico(Medico m) {
        this.nome = m.getNome();
        this.bi = m.getBi();
        this.cedula = m.getCedula();
        this.cod_especialidade = m.getCod_especialidade();
        this.morada = m.getMorada();
        this.localidade = m.getLocalidade();
        this.cod_postal = m.getCod_postal();
        this.dataNasc = m.getDataNasc();
        this.contacto = m.getContacto();
        this.password = m.getPassword();
    }
    
    public String getCedula() {
        return cedula;
    }

    public String getNome() {
        return nome;
    }

    public String getCod_postal() {
        return cod_postal;
    }

    public String getContacto() {
        return contacto;
    }

    public GregorianCalendar getDataNasc() {
        return dataNasc;
    }

    public String getMorada() {
        return morada;
    }

    public String getPassword() {
        return password;
    }

    public String getBi() {
        return bi;
    }

    public String getLocalidade() {
        return localidade;
    }

    public int getCod_especialidade() {
        return cod_especialidade;
    }

    public void setCod_especialidade(int cod_especialidade) {
        this.cod_especialidade = cod_especialidade;
    }


    public void setCedula(String cedula) {
        this.cedula = cedula;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public void setCod_postal(String cod_postal) {
        this.cod_postal = cod_postal;
    }

    public void setContacto(String contacto) {
        this.contacto = contacto;
    }

    public void setDataNasc(GregorianCalendar dataNasc) {
        this.dataNasc = dataNasc;
    }

    public void setMorada(String morada) {
        this.morada = morada;
    }

    public void setPassword(String password) {        
        this.password = password;
        //this.password = new Cripto(password).encrypt();
    }

    public void setBi(String bi) {
        this.bi = bi;
    }

    public void setLocalidade(String localidade) {
        this.localidade = localidade;
    }


    
    
    @Override
    public Medico clone() {
        return new Medico(this);
    }

    
    @Override
    public boolean equals(Object obj) {
        
        Medico m = (Medico)obj;
        
        if(this == obj)
            return true;
        if(obj == null)
            return false;
        if(this.getClass() != obj.getClass())
            return false;
        
        return (this.getNome().equals(m.getNome()) && 
                 this.getCedula().equals(m.getCedula()) &&
                    this.getMorada().equals(m.getMorada()) &&
                        this.getCod_postal().equals(m.getCod_postal()) &&
                            this.getDataNasc().equals(m.getDataNasc()) &&
                                this.getPassword().equals(m.getPassword()) &&
                                    this.getBi().equals(m.getBi()) &&
                                        this.getLocalidade().equals(m.getLocalidade()) &&
                                            this.getCod_especialidade() == (m.getCod_especialidade()) &&
                                                this.getLocalidade().equals(m.getLocalidade()));                           
    }
    
}
